// 往来单位管理
var Loan = Ext.data.Record.create([
	{name : 'tid',mapping : 'tid',type : 'int'}, 
	{name : 'name',mapping : 'name',type : 'string'}, 
	{name : 'contact',mapping : 'contact',type : 'string'}, 
	{name : 'tel',mapping : 'tel',type : 'string'},
	{name : 'mobile',mapping : 'mobile',type : 'string'}, 
	{name : 'address',mapping : 'address',type : 'string'},
	{name : 'region',mapping : 'region',type : 'int'},  
	{name : 'regionname',mapping : 'regionname',type : 'string'}, 
	{name : 'memo',mapping : 'memo',type : 'string'}
	]);

var cm_loan = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '单位名称',
	width : 95,
	dataIndex : 'name'
}, {
	header : '联系人',
	width : 70,
	dataIndex : 'contact',
	sortable : true,
	menuDisabled : true
}, {
	header : '属性',
	width : 70,
	dataIndex : 'memo',
	sortable : true,
	menuDisabled : true
},{
	header : '电话',
	width : 80,
	dataIndex : 'tel',
	sortable : false
},{
	header : '手机',
	width : 80,
	dataIndex : 'mobile',
	sortable:true
	
},{
	header : '地址',
	width : 150,
	dataIndex : 'address',
	sortable:true
	
},{
	header : '所属区域',
	width : 70,
	dataIndex : 'regionname',
	sortable : false
}]);

cm_loan.defaultSortable = true;

var btn_add_loan = new Ext.Button({
	text : '添加往来单位',
	iconCls : 'icon-add',
	handler : function() {
		window_add_loan.show();
	}
});

var btn_edit_loan = new Ext.Button({
	text : '修改往来单位',
	iconCls : 'icon-edit',
	handler : function() {
		var record = grid_loan.getSelectionModel().getSelected();
		if (record) {
			window_edit_loan.show();
		}else{
			Ext.Msg.alert('提示','请选择要修改的往来单位!');
		}
	}
});

var btn_del_loan = new Ext.Button({
	text : '删除往来单位',
	iconCls : 'icon-del',
	handler : function() {
		var record = grid_loan.getSelectionModel().getSelected();
		if (record) {
			Ext.Msg.confirm('确认删除', '你确定删除该条记录?', function(btn) {
				if (btn == 'yes') {
					Ext.Ajax.request({
						url : '/loan/deleteLoan.action',
						params : {tid : record.data.tid},
						success : function() {ds_loan.reload();},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '删除时发生错误,您可能不是管理员!',
								buttons : Ext.Msg.OK,
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			});
		}
	}
});

var text_search_loan = new Ext.form.TextField({
	name : 'textSearchLoan',
	width : 200,
	emptyText : '根据单位名称模糊查询!',
	listeners : {
		'specialkey' : function(field, e) {
			if (e.getKey() == Ext.EventObject.ENTER) {
				searchLoan();
			}
		}
	}
});

var searchLoan = function() {
	ds_loan.baseParams.conditions = text_search_loan.getValue(); 
	ds_loan.load({params : {start : 0,limit : 20}});
}

var btn_search_loan = new Ext.Button({
	text : '查询',
	iconCls : 'icon-search',
	handler : searchLoan
});

var ds_loan = new Ext.data.Store({
	url : '/loan/findAllLoan.action',
	reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'}, 
	[{name : 'tid',type : 'int'}, 
	{name : 'name',type : 'string'}, 
	{name : 'contact',type : 'string'}, 
	{name : 'tel',type : 'string'}, 
	{name : 'mobile',type : 'string'},
	{name : 'address',type : 'string'}, 
	{name : 'memo',type : 'string'},
	{name : 'regionname',type : 'string'} 
	])
});

var grid_loan = new Ext.grid.EditorGridPanel({
	title : '往来单位管理',
	iconCls : 'icon-grid',
	loadMask : {msg : '数据加载中...'},
	width:600,
	region : 'center',
	cm : cm_loan,
	ds : ds_loan,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
	clicksToEdit : 1,
	tbar : [btn_add_loan, '-',btn_edit_loan,'-', btn_del_loan, '-',text_search_loan, btn_search_loan],
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_loan,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录",
		items:[{   
                text: '导出到Excel',   
                tooltip: 'Excel',   
                handler: loanExport // 
                        }]
	})
});

function loanExport(){
	doExport(grid_loan);
}

var window_add_loan = new Ext.Window({
	title : '添加往来单位',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('添加往来单位');
			this.findById('loan.name').ownerCt.form.reset();
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{
			fieldLabel : '单位名称',
			id : 'loan.name',
			name : 'loan.name',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, {
			fieldLabel : '联系人',
			id : 'loan.contact',
			name : 'loan.contact',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, 
		{
		 	fieldLabel : '电话',
		 	name : 'loan.tel',
		 	allowBlank : false,
		 	maxLength : 15
		  },
		   {
		   	fieldLabel : '手机',
		   name : 'loan.mobile',
		   allowBlank : false,
		   maxLength : 12
		   },
		   {
		   	fieldLabel : '地址',
		   name : 'loan.address',
		   allowBlank : false,
		   maxLength : 40
		   },
		   {
		   	xtype : 'combo',
			fieldLabel : '区域',
			name : 'regionid',
			hiddenName : 'loan.region',
			valueField : 'tid',
		    displayField : 'value',
		    mode : 'remote',
			store : ds_region_select,
			selectOnFocus : true,
			editable : false,
			allowBlank : false,
			triggerAction : 'all',
			loadingText : '加载中...',
			emptyText : '请选择区域',
			listeners : {
				'select' : function(combo, record, index) {
					this.ownerCt.form.findField('loan.regionname').setValue(record.data.value);
				},
				'expand' : function(){
					ds_region_select.load();
				}
			}
		   }, {xtype : 'hidden',name : 'loan.regionname'}, 
		   {xtype : 'combo',
			fieldLabel : '属性类别',
			mode : 'local',
			name : 'types',
			editable : false,
			store : new Ext.data.SimpleStore({
				data : [['客户', "客户"], ['供应商',"供应商"]],
				fields : ['text', 'value']
			}),
			displayField : 'text',
			valueField : 'value',
			hiddenName:'loan.memo',
			mode : 'local',
			triggerAction : 'all',
			allowBlank:false,
			emptyText : '请选择属性类别'
		}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '添加',
			handler : function(btn) {
				var frm = this.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('loan.name');
					frm.submit({
						waitTitle : '请稍候',
						url : '/loan/saveLoan.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							window_add_loan.hide();
							ds_loan.load({params : {start : 0,limit : 20}});
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '重置',handler : function() {this.ownerCt.form.reset();}
		}, {text : '取消',handler : function() {this.ownerCt.ownerCt.hide();
			ds_loan.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var window_edit_loan = new Ext.Window({
	title : '修改往来单位',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('修改往来单位');
			this.findById('loand.name').ownerCt.form.reset();
		},
		'show' :function(){
			var record = grid_loan.getSelectionModel().getSelected();
			this.findById('loand.name').setValue(record.data.name);
			this.findById('loand.contact').setValue(record.data.contact);
			this.findById('loand.tel').setValue(record.data.tel);
			this.findById('loand.mobile').setValue(record.data.mobile);
			this.findById('loand.address').setValue(record.data.address);
			this.findById('regionid').setValue(record.data.regionname);
			this.findById('loand.region').setValue(record.data.region);
			this.findById('types').setValue(record.data.memo);
			this.findById('loand.tid').setValue(record.data.tid);
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [ {xtype : 'hidden',id:'loand.tid',name : 'loan.tid'},{
			fieldLabel : '单位名称',
			id : 'loand.name',
			name : 'loan.name',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, {
			fieldLabel : '联系人',
			id : 'loand.contact',
			name : 'loan.contact',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, 
		{
		 	fieldLabel : '电话',
		 	id : 'loand.tel',
		 	name : 'loan.tel',
		 	allowBlank : false,
		 	maxLength : 15
		  },
		   {
		   	fieldLabel : '手机',
		   	id: 'loand.mobile',
		   name : 'loan.mobile',
		   allowBlank : false,
		   maxLength : 12
		   },
		   {
		   	fieldLabel : '地址',
		   	id : 'loand.address',
		   name : 'loan.address',
		   allowBlank : false,
		   maxLength : 40
		   },
		   {
		   	xtype : 'combo',
			fieldLabel : '区域',
			id:'regionid',
			name : 'regionid',
			hiddenName : 'loan.regionname',
			valueField : 'value',
		    displayField : 'value',
		    mode : 'remote',
			store : ds_region_select,
			selectOnFocus : true,
			editable : false,
			allowBlank : false,
			triggerAction : 'all',
			loadingText : '加载中...',
			emptyText : '请选择区域',
			listeners : {
				'select' : function(combo, record, index) {
					this.ownerCt.form.findField('loand.region').setValue(record.data.tid);
				},
				'expand' : function(){
					ds_region_select.load();
				}
			}
		   }, {xtype : 'hidden',id:'loand.region',name : 'loan.region'}, 
		   {xtype : 'combo',
			fieldLabel : '属性类别',
			mode : 'local',
			id:'types',
			name : 'types',
			editable : false,
			store : new Ext.data.SimpleStore({
				data : [['客户', "客户"], ['供应商',"供应商"]],
				fields : ['text', 'value']
			}),
			displayField : 'text',
			valueField : 'value',
			hiddenName:'loan.memo',
			mode : 'local',
			triggerAction : 'all',
			allowBlank:false,
			emptyText : '请选择属性类别'
		}
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '保存',
			handler : function(btn) {
				var frm = this.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('loand.name');
					frm.submit({
						waitTitle : '请稍候',
						url : '/loan/updateLoan.action',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							window_edit_loan.hide();
							ds_loan.load({params : {start : 0,limit : 20}});
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '取消',handler : function() {this.ownerCt.ownerCt.hide();
			ds_loan.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var p_loan = {
	id : 'loan-panel',
	border : false,
	layout : 'border',
	items : [grid_loan]
};